package main

import (
	"github.com/gin-gonic/gin"
	"time"
)

func main() {
	//获取gin实例
	r := gin.Default()

	/////////// 定义路由 ///////////
	//1.无参数 GET
	r.GET("/ping", func(c *gin.Context) {
		// #go时间格式化 https://blog.csdn.net/permike/article/details/73548247
		now := time.Now().Format(time.RFC3339)
		//c.String()简单地返回 一串文本
		c.String(200, "PONG,now is%s", now) //res: PONG,now is2021-07-01T17:21:29+08:00
	})

	//2.带query查询串、带路由变量(也称地址变量，演示 “/:val” )
	r.GET("/test/:user", func(c *gin.Context) {
		// 冒号后接变量名，该变量名即可获取该斜杠内匹配到的内容。  匹配全部内容用*号【不常用】
		who := c.Param("user") //使用Param获取路由变量
		//使用Query获取URL上的查询参数串，即test?a=b&c=d这种
		code := c.Query("code")
		//Query方法为我们提供了获取对应key的值的能力，如果该key不存在，则返回""字符串。如果对于一些数字参数，比如id如果返回为空的话，
		//我们进行字符串转数字的时候会报错，这时候，我们就可以通过DefaultQuery方法指定一个默认值：
		couponCode := c.DefaultQuery("coupon", "-")

		//c.String()简单地返回 一串文本
		c.String(200, "你好，%s,所输入的验证码：%s, 优惠券号码：%s（若无，显示为 -）", who, code, couponCode)
		//req: http://localhost:8080/test/lcweng?code=2k3s
		//res: 你好，lcweng,所输入的验证码：2k3s

	})

	//启动实例
	_ = r.Run(":8080")

}
